package com.googlecode.grtframework.core;

/**
 * An IProcess is a component that can be started and paused.
 * 
 * @author ajc
 * 
 */
public interface IProcess {

	/**
	 * Enable the process
	 */
	public void initiate();

	/**
	 * Disable the process
	 */
	public void terminate();

	/**
	 * 
	 * @return true if process enabled and running
	 */
	public boolean isRunning();

	/**
	 * Temporarily suspends the process
	 */
	public void pause();

	/**
	 * Un-suspends the process.
	 */
	public void unPause();

	/**
	 * 
	 * @return true if process is temporarily suspended
	 */
	public boolean isPaused();

}
